package entity

import (
	"time"

	"shqsoft.cn/pasnj/base"

	"github.com/jinzhu/gorm"
)

//经济资本
type BaseJhcwJjzb struct {
	ID     int        `gorm:"AUTO_INCREMENT;primary_key;column:ID"`
	DTID   int        `gorm:"column:DTID"`             //日期
	BH     string     `gorm:"column:BH"`               //编号
	JJH    string     `gorm:"column:JJH"`              //借据号
	HTH    string     `gorm:"column:HTH"`              //合同号
	KHH    string     `gorm:"column:KHH"`              //客户号
	ZJJGDM string     `gorm:"column:ZJJGDM"`           //组织机构代码
	CPMC   string     `gorm:"column:CPMC"`             //产品名称
	JJZBXM string     `gorm:"column:JJZBXM"`           //经济资本项目
	ZYDBFS string     `gorm:"column:ZYDBFS"`           //主要担保方式
	KHPJJG string     `gorm:"column:KHPJJG"`           //客户评级结果
	KHSSHY string     `gorm:"column:KHSSHY"`           //客户所属行业
	WJFLJG string     `gorm:"column:WJFLJG"`           //五级分类结果
	ZHJG   string     `gorm:"column:ZHJG";`            //账户机构
	YWJBR  string     `gorm:"column:YWJBR"`            //业务经办人
	JJJE   float64    `gorm:"column:JJJE"`             //借据金额
	YE     float64    `gorm:"column:YE";`              //余额
	LXTZ   float64    `gorm:"column:LXTZ"`             //利息调整
	JJZB   float64    `gorm:"column:JJZB"`             //经济资本
	JGZB   float64    `gorm:"column:JGZB"`             //监管资本
	JGZBRQ *time.Time `gorm:"column:JGZBRQ;type:date"` //监管资本日期
	KHMC   string     `gorm:"column:KHMC"`             //客户名称
	KHGHR  string     `gorm:"column:KHGHR"`            //客户管户人
	YWLX   int        `gorm:"column:YWLX"`
	ACID   int        `gorm:"column:ACID"`
	CUID   int        `gorm:"column:CUID"`
	ITID   int        `gorm:"column:ITID"`
	UTID   int        `gorm:"column:UTID"`
	PERD   int        `gorm:"column:PERD"`
	WJFL   string     `gorm:"column:WJFL"`
	JGDT   string     `gorm:"column:JGDT"`
	DRRQ   *time.Time `gorm:"column:DRRQ;type:date"` //日期
}

//TableName 经济资本
func (BaseJhcwJjzb) TableName() string {
	return "T_BASE_JHCW_JJZB"
}

//导入前执行分户处理
func JjzbBeforeImport(tx *gorm.DB, params map[string]string) (err error) {
	prams := make([]interface{}, 1)
	prams[0] = params["DRRQ"]
	tx.Exec("EXEC UP_BASE_JHCW_JJZB_DELETE ?", prams...)
	return nil
}

//导入后执行分户处理
func JjzbAfterImport(tx *gorm.DB, params map[string]string) (err error) {
	prams := make([]interface{}, 1)
	prams[0] = params["DRRQ"]
	tx.Exec("EXEC UP_BASE_JHCW_JJZB ?", prams...)
	return nil
}

func BaseJhcwJjzbEF() base.EntityFunc {
	return func() interface{} {
		entity := BaseJhcwJjzb{}
		return &entity
	}
}
func BaseJhcwJjzbESF() base.EntitiesFunc {
	return func() interface{} {
		var entities []BaseJhcwJjzb
		return &entities
	}
}

func init() {
	base.DaoPoolObj.Put("BaseJhcwJjzb", base.NewDefaultDao(BaseJhcwJjzbEF(), BaseJhcwJjzbESF(), nil))
	base.SetAfterCallBack("BaseJhcwJjzb", JjzbAfterImport)
	base.SetBeforeCallBack("BaseJhcwJjzb", JjzbBeforeImport)
}
